package chan.com.mvplib.proxy;

import chan.com.mvplib.presenter.BaseMvpPresenter;
import chan.com.mvplib.factory.PresenterMvpFactory;
import chan.com.mvplib.view.BaseMvpView;

/**
 * Created by chen on 2017/12/25.
 */
public interface PresenterProxyInterface<V extends BaseMvpView, P extends BaseMvpPresenter<V>> {
    /**
     * 设置创建presenter的工厂
     *
     * @param presenterFactory
     */
    void setPresenterFactory(PresenterMvpFactory<V, P> presenterFactory);

    /**
     * 获取Prenseter 的工厂类
     * 返回PresenterMvpFactory 类型
     *
     * @return
     */
    PresenterMvpFactory<V, P> getPresenterFactory();

    /**
     * @return 获取创建的presenter
     * 指定类型的presenter
     */
    P getMvpPresenter();
}
